package com.chinamsp.baisc.util;

import org.springframework.util.StringUtils;

/**
 * 枚举工具类
 * @author shifenghu
 *
 */
public class EnumUtils {



	/**
	 * 查询 enum
	 * @param clazz
	 * @param name
	 * @return
	 */
	public static <T extends Enum<T>> T valueOf(Class<T> clazz, String name){
		T[] enums = clazz.getEnumConstants();
		for (T t : enums) {
			if (t.name().equalsIgnoreCase(name)) {
				return t;
			}
		}
		return null;
	}
	
	
	/**
	 * 检查特定枚举name 是否在 包含的 array 中
	 * @param name
	 * @param array
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static <T extends Enum<T>> boolean containsWith (String name, T... array) {
		// 检查入参格式
		if (StringUtils.isEmpty(name) || array == null || array.length == 0) {
			return false;
		}
		for (T t : array) {
			if (name.equalsIgnoreCase(t.name())) {
				return true;
			}
		}
		return false;
	}
	
}
